package com.flannery.learningandroid.data.kotlin

interface MyInterface {
    var name: String


    fun bar()
    fun foo() {
        //可选方法体
        println("foo")
    }
}

class Child(override var name: String) : MyInterface {
    //    override var name: String = 0 //第二种实现属性
    override fun bar() {
        //方法体
        println("bar")
    }
}


interface A3 {
    fun foo() { print("A") }   // 已实现
    fun bar()                  // 未实现，没有方法体，是抽象的
}

interface B3 {
    fun foo() { print("B") }   // 已实现
    fun bar() { print("bar") } // 已实现
}

class C3 : A3 {
    override fun bar() { print("bar") }   // 重写
}

class D3 : A3, B3 {
    override fun foo() {
        super<A3>.foo()
        super<B3>.foo()
    }

    override fun bar() {
        super<B3>.bar()
    }
}

fun main(args: Array<String>) {
    val d =  D3()
    d.foo();
    d.bar();
}